//用js判断有效括号组合
/**
 * 判断括号字符串是否有效
 *
 * @param {string} s - 待判断的括号字符串
 * @returns {boolean} 如果括号字符串有效则返回true，否则返回false
 */
function isBracketValid(s) {
    const stack = [];
    const map = {
        ')': '(',
        '}': '{',
        ']': '['
    };
    for (let i = 0; i < s.length; i++) {
        const char = s[i];
        // 如果是左括号，压入栈中
        if (char === '(' || char === '{' || char === '[') {
            stack.push(char);
        } else {
            // 如果是右括号，检查栈顶是否有对应的左括号
            const top = stack.pop();
            if (map[char] !== top) {
                return false;
            }
        }
    }
    // 最后检查栈是否为空，为空则有效
    return stack.length === 0;
}

console.log(isBracketValid('()')); // true
console.log(isBracketValid('()[]{}')); // true
console.log(isBracketValid('(]')); // false